package com.woniuxy.dao;

import com.woniuxy.pojo.SysRole;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
public interface SysRoleMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(SysRole record);

    int insertSelective(SysRole record);

    SysRole selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(SysRole record);

    int updateByPrimaryKey(SysRole record);

    void deleteRoleUserByUid(Integer uid);
    /**
     * 查询所有的可用角色
     */
    public List<SysRole> getAllAvailbleRoles();

    /**
     * 查询当前用户拥有的角色ID集合
     * @param uid
     * @return
     */
    public List<Integer> queryUserRoleIdsByUid(Integer uid);

    /**
     * 给sys_role_id表中添加数据维护关联
     * @param uid
     * @param rid
     */
    public void insertUserRole(@Param("uid") int uid, @Param("rid") int rid);

    /**
     * 通过uid删除sys_role_id表中的数据
     * @param uid
     */
    public void deleteRoleByUid(int uid);

    /**
     * 查询用户列表
     * @param role
     * @return
     */
    public List<SysRole> getListByProperty(SysRole role);

    /**
     * 通过角色id查询菜单集合
     * @param rid
     * @return
     */
    public Integer[] getMenuIdsByRid(Integer rid);
    public void addRoleMenu(Map<String,Integer> params);
    public void deleteRoleMenu(Integer roleId);

    /**
     * 通过用户ID获取用户角色
     * @param uid
     * @return
     */
    List<String> getRolesByUserId(Integer uid);
}